package com.xrh.core.generater.mybatisplus;

import java.io.File;
import java.io.IOException;

import com.xrh.core.generater.bean.TableInfo;
import com.xrh.core.generater.bean.UserInput;
import com.xrh.core.generater.interfaces.TemplateRootPath;
import com.xrh.core.generater.utils.FileUtils;
import com.xrh.core.generater.utils.MarkEnum;
import com.xrh.core.generater.utils.TemplateNameEnum;
import com.xrh.core.generater.utils.TemplateReader;

//生成控制器
public class ControllerGenerater {

	
	/**
	 * @function 生成controller文件到指定目录
	 * @author ronghui.xiao
	 * @throws CloneNotSupportedException 
	 * @date 2017年6月21日
	 */
	public static void generateFile(UserInput userInput , TableInfo tableInfo , TemplateRootPath generater) throws IOException, CloneNotSupportedException{
	    
		String templateTxt = generateTemplateTxt(userInput , tableInfo , generater);
		
		FileUtils.generateFile(userInput.getOutputDirPath() +File.separator +  "controllers", 
				 tableInfo.getClassName()+"Controller" + ".java", templateTxt);
		
	}
	
	/**
	* @function 生成模板字符串
	* @author 肖荣辉
	* @date 2018年10月23日
	*/
	public static String generateTemplateTxt(UserInput userInput , TableInfo tableInfo , TemplateRootPath templateRootPath) throws IOException{
		
		String templateTxt = TemplateReader.readTextTemplate(templateRootPath , TemplateNameEnum.Controller模板.name());
		
		//通用替换
		templateTxt = MarkEnum.replaceMark(templateTxt , userInput , tableInfo);
		
		return templateTxt;
	}
	
	
}
